package model

import (
	"time"
)

// FaAdmin 管理员表
type FaAdmin struct {
	ID           uint32 `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`              // ID
	Username     string `gorm:"unique;column:username;type:varchar(20)" json:"username"`                   // 用户名
	Nickname     string `gorm:"column:nickname;type:varchar(50)" json:"nickname"`                          // 昵称
	Password     string `gorm:"column:password;type:varchar(32)" json:"password"`                          // 密码
	Salt         string `gorm:"column:salt;type:varchar(30)" json:"salt"`                                  // 密码盐
	Avatar       string `gorm:"column:avatar;type:varchar(255)" json:"avatar"`                             // 头像
	Email        string `gorm:"column:email;type:varchar(100)" json:"email"`                               // 电子邮箱
	Loginfailure uint8  `gorm:"column:loginfailure;type:tinyint(3) unsigned;not null" json:"loginfailure"` // 失败次数
	Logintime    int    `gorm:"column:logintime;type:int(11)" json:"logintime"`                            // 登录时间
	Loginip      string `gorm:"column:loginip;type:varchar(50)" json:"loginip"`                            // 登录IP
	Createtime   int    `gorm:"column:createtime;type:int(11)" json:"createtime"`                          // 创建时间
	Updatetime   int    `gorm:"column:updatetime;type:int(11)" json:"updatetime"`                          // 更新时间
	Token        string `gorm:"column:token;type:varchar(59)" json:"token"`                                // Session标识
	Status       string `gorm:"column:status;type:varchar(30);not null" json:"status"`                     // 状态
}

// FaAdminLog 管理员日志表
type FaAdminLog struct {
	ID         uint32 `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`   // ID
	AdminID    uint32 `gorm:"column:admin_id;type:int(10) unsigned;not null" json:"admin_id"` // 管理员ID
	Username   string `gorm:"index:name;column:username;type:varchar(30)" json:"username"`    // 管理员名字
	URL        string `gorm:"column:url;type:varchar(1500)" json:"url"`                       // 操作页面
	Title      string `gorm:"column:title;type:varchar(100)" json:"title"`                    // 日志标题
	Content    string `gorm:"column:content;type:text;not null" json:"content"`               // 内容
	IP         string `gorm:"column:ip;type:varchar(50)" json:"ip"`                           // IP
	Useragent  string `gorm:"column:useragent;type:varchar(255)" json:"useragent"`            // User-Agent
	Createtime int    `gorm:"column:createtime;type:int(11)" json:"createtime"`               // 操作时间
}

// FaArea 地区表
type FaArea struct {
	ID        int    `gorm:"primaryKey;column:id;type:int(11);not null" json:"-"` // ID
	Pid       int    `gorm:"index:pid;column:pid;type:int(11)" json:"pid"`        // 父id
	Shortname string `gorm:"column:shortname;type:varchar(100)" json:"shortname"` // 简称
	Name      string `gorm:"column:name;type:varchar(100)" json:"name"`           // 名称
	Mergename string `gorm:"column:mergename;type:varchar(255)" json:"mergename"` // 全称
	Level     int8   `gorm:"column:level;type:tinyint(4)" json:"level"`           // 层级 0 1 2 省市区县
	Pinyin    string `gorm:"column:pinyin;type:varchar(100)" json:"pinyin"`       // 拼音
	Code      string `gorm:"column:code;type:varchar(100)" json:"code"`           // 长途区号
	Zip       string `gorm:"column:zip;type:varchar(100)" json:"zip"`             // 邮编
	First     string `gorm:"column:first;type:varchar(50)" json:"first"`          // 首字母
	Lng       string `gorm:"column:lng;type:varchar(100)" json:"lng"`             // 经度
	Lat       string `gorm:"column:lat;type:varchar(100)" json:"lat"`             // 纬度
}

// FaAttachment 附件表
type FaAttachment struct {
	ID          uint32 `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`         // ID
	AdminID     uint32 `gorm:"column:admin_id;type:int(10) unsigned;not null" json:"admin_id"`       // 管理员ID
	UserID      uint32 `gorm:"column:user_id;type:int(10) unsigned;not null" json:"user_id"`         // 会员ID
	URL         string `gorm:"column:url;type:varchar(255)" json:"url"`                              // 物理路径
	Imagewidth  string `gorm:"column:imagewidth;type:varchar(30)" json:"imagewidth"`                 // 宽度
	Imageheight string `gorm:"column:imageheight;type:varchar(30)" json:"imageheight"`               // 高度
	Imagetype   string `gorm:"column:imagetype;type:varchar(30)" json:"imagetype"`                   // 图片类型
	Imageframes int    `gorm:"column:imageframes;type:int(10) unsigned;not null" json:"imageframes"` // 图片帧数
	Filename    string `gorm:"column:filename;type:varchar(100)" json:"filename"`                    // 文件名称
	Filesize    int    `gorm:"column:filesize;type:int(10) unsigned;not null" json:"filesize"`       // 文件大小
	Mimetype    string `gorm:"column:mimetype;type:varchar(100)" json:"mimetype"`                    // mime类型
	Extparam    string `gorm:"column:extparam;type:varchar(255)" json:"extparam"`                    // 透传数据
	Createtime  int    `gorm:"column:createtime;type:int(11)" json:"createtime"`                     // 创建日期
	Updatetime  int    `gorm:"column:updatetime;type:int(11)" json:"updatetime"`                     // 更新时间
	Uploadtime  int    `gorm:"column:uploadtime;type:int(11)" json:"uploadtime"`                     // 上传时间
	Storage     string `gorm:"column:storage;type:varchar(100);not null" json:"storage"`             // 存储位置
	Sha1        string `gorm:"column:sha1;type:varchar(40)" json:"sha1"`                             // 文件 sha1编码
}

// FaAuthGroup 分组表
type FaAuthGroup struct {
	ID         uint32 `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`
	Pid        uint32 `gorm:"column:pid;type:int(10) unsigned;not null" json:"pid"` // 父组别
	Name       string `gorm:"column:name;type:varchar(100)" json:"name"`            // 组名
	Rules      string `gorm:"column:rules;type:text;not null" json:"rules"`         // 规则ID
	Createtime int    `gorm:"column:createtime;type:int(11)" json:"createtime"`     // 创建时间
	Updatetime int    `gorm:"column:updatetime;type:int(11)" json:"updatetime"`     // 更新时间
	Status     string `gorm:"column:status;type:varchar(30)" json:"status"`         // 状态
}

// FaAuthGroupAccess 权限分组表
type FaAuthGroupAccess struct {
	UId     int `gorm:"uniqueIndex:uid_group_id;index:uid;column:uid;type:int(10) unsigned;not null" json:"uid"`                // 会员ID
	GroupID int `gorm:"uniqueIndex:uid_group_id;index:group_id;column:group_id;type:int(10) unsigned;not null" json:"group_id"` // 级别ID
}

// FaAuthRule 节点表
type FaAuthRule struct {
	ID         int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`
	Type       string `gorm:"column:type;type:enum('menu','file');not null" json:"type"`                    // menu为菜单,file为权限节点
	Pid        int    `gorm:"index:pid;column:pid;type:int(10) unsigned;not null" json:"pid"`               // 父ID
	Name       string `gorm:"unique;column:name;type:varchar(100)" json:"name"`                             // 规则名称
	Title      string `gorm:"column:title;type:varchar(50)" json:"title"`                                   // 规则名称
	Icon       string `gorm:"column:icon;type:varchar(50)" json:"icon"`                                     // 图标
	URL        string `gorm:"column:url;type:varchar(255)" json:"url"`                                      // 规则URL
	Condition  string `gorm:"column:condition;type:varchar(255)" json:"condition"`                          // 条件
	Remark     string `gorm:"column:remark;type:varchar(255)" json:"remark"`                                // 备注
	Ismenu     uint8  `gorm:"column:ismenu;type:tinyint(3) unsigned;not null" json:"ismenu"`                // 是否为菜单
	Menutype   string `gorm:"column:menutype;type:enum('addtabs','blank','dialog','ajax')" json:"menutype"` // 菜单类型
	Extend     string `gorm:"column:extend;type:varchar(255)" json:"extend"`                                // 扩展属性
	Createtime int    `gorm:"column:createtime;type:int(11)" json:"createtime"`                             // 创建时间
	Updatetime int    `gorm:"column:updatetime;type:int(11)" json:"updatetime"`                             // 更新时间
	Weigh      int    `gorm:"index:weigh;column:weigh;type:int(11);not null" json:"weigh"`                  // 权重
	Status     string `gorm:"column:status;type:varchar(30)" json:"status"`                                 // 状态
}

// FaBanner [...]
type FaBanner struct {
	ID         int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"` // ID
	Image      string `gorm:"column:image;type:varchar(255);not null" json:"image"`         // 图片
	Type       string `gorm:"column:type;type:enum('1','0');not null" json:"type"`          // 类型:0=小程序,1=公众号
	URL        string `gorm:"column:url;type:varchar(255);not null" json:"url"`             // URL
	Weigh      int    `gorm:"column:weigh;type:int(11);not null" json:"weigh"`              // 排序
	Status     string `gorm:"column:status;type:enum('0','1');not null" json:"status"`      // 状态:1=显示,2=隐藏
	Createtime int    `gorm:"column:createtime;type:int(11);not null" json:"createtime"`    // 创建时间
	Updatetime int    `gorm:"column:updatetime;type:int(11);not null" json:"updatetime"`    // 更新时间
}

// FaClearingLog [...]
type FaClearingLog struct {
	ID         int64   `gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null" json:"-"`  // ID
	WorkerID   int     `gorm:"column:worker_id;type:int(11) unsigned;not null" json:"worker_id"` // 员工ID
	Money      float64 `gorm:"column:money;type:decimal(19,2) unsigned;not null" json:"money"`   // 结算金额
	Createtime int     `gorm:"column:createtime;type:int(11);not null" json:"createtime"`        // 创建时间
}

// FaCommand 在线命令表
type FaCommand struct {
	ID          int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`           // ID
	Type        string `gorm:"column:type;type:varchar(30);not null" json:"type"`                      // 类型
	Params      string `gorm:"column:params;type:varchar(1500);not null" json:"params"`                // 参数
	Command     string `gorm:"column:command;type:varchar(1500);not null" json:"command"`              // 命令
	Content     string `gorm:"column:content;type:text" json:"content"`                                // 返回结果
	Executetime int    `gorm:"column:executetime;type:int(10) unsigned" json:"executetime"`            // 执行时间
	Createtime  uint32 `gorm:"column:createtime;type:int(10) unsigned" json:"createtime"`              // 创建时间
	Updatetime  uint32 `gorm:"column:updatetime;type:int(10) unsigned" json:"updatetime"`              // 更新时间
	Status      string `gorm:"column:status;type:enum('successed','failured');not null" json:"status"` // 状态
}

// FaConfig 系统配置
type FaConfig struct {
	ID      int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`
	Name    string `gorm:"unique;column:name;type:varchar(30)" json:"name"` // 变量名
	Group   string `gorm:"column:group;type:varchar(30)" json:"group"`      // 分组
	Title   string `gorm:"column:title;type:varchar(100)" json:"title"`     // 变量标题
	Tip     string `gorm:"column:tip;type:varchar(100)" json:"tip"`         // 变量描述
	Type    string `gorm:"column:type;type:varchar(30)" json:"type"`        // 类型:string,text,int,bool,array,datetime,date,file
	Value   string `gorm:"column:value;type:text" json:"value"`             // 变量值
	Content string `gorm:"column:content;type:text" json:"content"`         // 变量字典数据
	Rule    string `gorm:"column:rule;type:varchar(100)" json:"rule"`       // 验证规则
	Extend  string `gorm:"column:extend;type:varchar(255)" json:"extend"`   // 扩展属性
	Setting string `gorm:"column:setting;type:varchar(255)" json:"setting"` // 配置
}

// FaCoupon [...]
type FaCoupon struct {
	ID         int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`          // id
	Title      string `gorm:"column:title;type:varchar(20);not null" json:"title"`                   // 名称
	Fee        uint32 `gorm:"column:fee;type:int(10) unsigned;not null" json:"fee"`                  // 优惠金额
	WithAmout  uint32 `gorm:"column:with_amout;type:int(10) unsigned;not null" json:"with_amout"`    // 满多少元可用
	ValidDays  uint8  `gorm:"column:valid_days;type:tinyint(3) unsigned;not null" json:"valid_days"` // 有效期(天)
	MaxTake    int    `gorm:"column:max_take;type:int(4) unsigned;not null" json:"max_take"`         // 最大领取次数
	TakeCount  int    `gorm:"column:take_count;type:int(10) unsigned;not null" json:"take_count"`    // 已领取数量
	UsedCount  uint32 `gorm:"column:used_count;type:int(10) unsigned;not null" json:"used_count"`    // 已使用数量
	Status     string `gorm:"column:status;type:enum('0','1');not null" json:"status"`               // 状态:0=隐藏,1=显示
	Weigh      int    `gorm:"column:weigh;type:int(11);not null" json:"weigh"`                       // 排序
	Createtime int    `gorm:"column:createtime;type:int(11);not null" json:"createtime"`             // 创建时间
	Updatetime int    `gorm:"column:updatetime;type:int(11);not null" json:"updatetime"`             // 更新时间
	Deletetime int    `gorm:"column:deletetime;type:int(11)" json:"deletetime"`                      // 删除时间
}

// FaEms 邮箱验证码表
type FaEms struct {
	ID         int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"` // ID
	Event      string `gorm:"column:event;type:varchar(30)" json:"event"`                   // 事件
	Email      string `gorm:"column:email;type:varchar(100)" json:"email"`                  // 邮箱
	Code       string `gorm:"column:code;type:varchar(10)" json:"code"`                     // 验证码
	Times      int    `gorm:"column:times;type:int(10) unsigned;not null" json:"times"`     // 验证次数
	IP         string `gorm:"column:ip;type:varchar(30)" json:"ip"`                         // IP
	Createtime int    `gorm:"column:createtime;type:int(11)" json:"createtime"`             // 创建时间
}

// FaEvaluate [...]
type FaEvaluate struct {
	ID          uint32 `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`      // id
	UserID      int    `gorm:"column:user_id;type:int(10) unsigned;not null" json:"user_id"`      // 用户id
	WorkerID    int    `gorm:"column:worker_id;type:int(11);not null" json:"worker_id"`           // 员工id
	OrderID     string `gorm:"column:order_id;type:varchar(20);not null" json:"order_id"`         // 订单号
	ServiceName string `gorm:"column:service_name;type:varchar(20);not null" json:"service_name"` // 服务名称
	Content     string `gorm:"column:content;type:varchar(255);not null" json:"content"`          // 评价内容
	Score       int8   `gorm:"column:score;type:tinyint(3);not null" json:"score"`                // 评价星级(百分制)
	Createtime  int    `gorm:"column:createtime;type:int(11);not null" json:"createtime"`         // 评价时间
}

// FaGroupon [...]
type FaGroupon struct {
	ID         int64  `gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null" json:"-"`    // ID
	ServiceID  uint32 `gorm:"column:service_id;type:int(10) unsigned;not null" json:"service_id"` // 服务项目ID
	UserID     uint32 `gorm:"column:user_id;type:int(10) unsigned;not null" json:"user_id"`       // 团长ID
	UserItems  string `gorm:"column:user_items;type:varchar(255);not null" json:"user_items"`     // 参团用户
	Status     string `gorm:"column:status;type:enum('0','1');not null" json:"status"`            // 团购状态:0=未成,1=已成
	Createtime int    `gorm:"column:createtime;type:int(10) unsigned;not null" json:"createtime"` // 开始时间
	Endtime    uint32 `gorm:"column:endtime;type:int(10) unsigned;not null" json:"endtime"`       // 结束时间
}

// FaOrder [...]
type FaOrder struct {
	ID              string  `gorm:"primaryKey;column:id;type:varchar(20);not null" json:"-"`                      // 订单号
	UserID          int     `gorm:"column:user_id;type:int(11);not null" json:"user_id"`                          // 用户id
	WorkerID        string  `gorm:"column:worker_id;type:varchar(100);not null" json:"worker_id"`                 // 员工id
	UserCouponID    int     `gorm:"column:user_coupon_id;type:int(11)" json:"user_coupon_id"`                     // 优惠券id
	GrouponID       int64   `gorm:"column:groupon_id;type:bigint(20) unsigned" json:"groupon_id"`                 // 团购id
	VillageID       string  `gorm:"column:village_id;type:varchar(30);not null" json:"village_id"`                // 小区id
	AddressPhone    string  `gorm:"column:address_phone;type:varchar(11);not null" json:"address_phone"`          // 用户地址的手机号
	AddressDetail   string  `gorm:"column:address_detail;type:varchar(100);not null" json:"address_detail"`       // 详细地址
	AddressName     string  `gorm:"column:address_name;type:varchar(20);not null" json:"address_name"`            // 用户姓名
	ServiceName     string  `gorm:"column:service_name;type:varchar(20);not null" json:"service_name"`            // 服务名称
	Area            uint16  `gorm:"column:area;type:smallint(5) unsigned;not null" json:"area"`                   // 下单面积
	MainImage       string  `gorm:"column:main_image;type:varchar(255);not null" json:"main_image"`               // 主图
	CostPrice       float64 `gorm:"column:cost_price;type:decimal(19,2) unsigned;not null" json:"cost_price"`     // 原价
	PayPrice        float64 `gorm:"column:pay_price;type:decimal(19,2) unsigned" json:"pay_price"`                // 支付金额
	UnitPrice       float64 `gorm:"column:unit_price;type:decimal(19,2) unsigned;not null" json:"unit_price"`     // 单价
	Remark          string  `gorm:"column:remark;type:varchar(255)" json:"remark"`                                // 备注
	GrouponStatus   string  `gorm:"column:groupon_status;type:enum('0','1')" json:"groupon_status"`               // 团购状态:0=未成,1=已成
	Status          string  `gorm:"column:status;type:enum('1','0','2','3','4','5');not null" json:"status"`      // 订单状态:0=待支付,1=待服务,2=待评价,3=已完成,4=退款中,5=已退款
	Appointmenttime int     `gorm:"column:appointmenttime;type:int(10) unsigned;not null" json:"appointmenttime"` // 预约时间
	Createtime      int     `gorm:"column:createtime;type:int(10) unsigned;not null" json:"createtime"`           // 创建时间
	Paytime         int     `gorm:"column:paytime;type:int(10) unsigned" json:"paytime"`                          // 支付时间
	Doortime        int     `gorm:"column:doortime;type:int(10) unsigned" json:"doortime"`                        // 上门时间
	Completetime    int     `gorm:"column:completetime;type:int(10) unsigned" json:"completetime"`                // 完成时间
	Refundtime      int     `gorm:"column:refundtime;type:int(11)" json:"refundtime"`                             // 退款时间
	RefundReason    string  `gorm:"column:refund_reason;type:varchar(255)" json:"refund_reason"`                  // 退款原因
}

// FaService [...]
type FaService struct {
	ID            uint32  `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`                   // ID
	Name          string  `gorm:"column:name;type:varchar(20);not null" json:"name"`                              // 服务名称
	IconImage     string  `gorm:"column:icon_image;type:varchar(255);not null" json:"icon_image"`                 // 图标
	BannerImages  string  `gorm:"column:banner_images;type:varchar(255);not null" json:"banner_images"`           // 顶部轮播图
	ContentImages string  `gorm:"column:content_images;type:varchar(255);not null" json:"content_images"`         // 详情介绍
	Tips          string  `gorm:"column:tips;type:varchar(255);not null" json:"tips"`                             // 输入框的提示
	Unit          string  `gorm:"column:unit;type:varchar(10);not null" json:"unit"`                              // 单位
	Price         float64 `gorm:"column:price;type:decimal(10,2);not null" json:"price"`                          // 单价
	GrouponPrice  float64 `gorm:"column:groupon_price;type:decimal(10,2) unsigned;not null" json:"groupon_price"` // 团购单价
	GrouponSum    int16   `gorm:"column:groupon_sum;type:smallint(5) unsigned;not null" json:"groupon_sum"`       // 几人成团
	Speed         int8    `gorm:"column:speed;type:tinyint(4);not null" json:"speed"`                             // 速度(单位/小时)
	MinimalArea   int16   `gorm:"column:minimal_area;type:smallint(5) unsigned;not null" json:"minimal_area"`     // 最小面积
	MaxWorker     uint8   `gorm:"column:max_worker;type:tinyint(3) unsigned;not null" json:"max_worker"`          // 最大工人数
	OnworkerArea  int8    `gorm:"column:onworker_area;type:tinyint(3);not null" json:"onworker_area"`             // 多少单位只能选择一个工人
	Weigh         int     `gorm:"column:weigh;type:int(11);not null" json:"weigh"`                                // 排序
	GrouponOpen   string  `gorm:"column:groupon_open;type:enum('0','1');not null" json:"groupon_open"`
	Status        string  `gorm:"column:status;type:enum('0','1');not null" json:"status"`   // 是否热门:0=不热门,1=热门
	Createtime    int     `gorm:"column:createtime;type:int(11);not null" json:"createtime"` // 创建时间
	Updatetime    int     `gorm:"column:updatetime;type:int(11);not null" json:"updatetime"` // 更新时间
	Deletetime    int     `gorm:"column:deletetime;type:int(11)" json:"deletetime"`          // 删除时间
}

// FaSms 短信验证码表
type FaSms struct {
	ID         int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"` // ID
	Event      string `gorm:"column:event;type:varchar(30)" json:"event"`                   // 事件
	Mobile     string `gorm:"column:mobile;type:varchar(20)" json:"mobile"`                 // 手机号
	Code       string `gorm:"column:code;type:varchar(10)" json:"code"`                     // 验证码
	Times      int    `gorm:"column:times;type:int(10) unsigned;not null" json:"times"`     // 验证次数
	IP         string `gorm:"column:ip;type:varchar(30)" json:"ip"`                         // IP
	Createtime int    `gorm:"column:createtime;type:int(10) unsigned" json:"createtime"`    // 创建时间
}

// FaUser 会员表
type FaUser struct {
	ID         uint32 `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`       // ID
	GroupID    int    `gorm:"column:group_id;type:int(10) unsigned;not null" json:"group_id"`     // 分组
	Openid     string `gorm:"unique;column:openid;type:varchar(100);not null" json:"openid"`      // openid
	Nickname   string `gorm:"column:nickname;type:varchar(50)" json:"nickname"`                   // 昵称
	Avatar     string `gorm:"column:avatar;type:varchar(255)" json:"avatar"`                      // 头像
	Gender     string `gorm:"column:gender;type:enum('1','0')" json:"gender"`                     // 性别:1=男,0=女
	Mobile     string `gorm:"index:mobile;column:mobile;type:varchar(11);not null" json:"mobile"` // 手机号
	Status     string `gorm:"column:status;type:enum('1','0');not null" json:"status"`            // 状态:1=正常,0=禁用
	Createtime int    `gorm:"column:createtime;type:int(11);not null" json:"createtime"`          // 创建时间
	Updatetime int    `gorm:"column:updatetime;type:int(11);not null" json:"updatetime"`          // 更新时间
}

// FaUserAddress [...]
type FaUserAddress struct {
	ID         int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`    // ID
	UserID     int    `gorm:"column:user_id;type:int(11);not null" json:"user_id"`             // 用户ID
	VillageID  int    `gorm:"column:village_id;type:int(11);not null" json:"village_id"`       // 小区ID
	Detail     string `gorm:"column:detail;type:varchar(100);not null" json:"detail"`          // 详细地址
	Name       string `gorm:"column:name;type:varchar(20);not null" json:"name"`               // 姓名
	Gender     string `gorm:"column:gender;type:enum('1','0');not null" json:"gender"`         // 性别:1=男,0=女
	Phone      string `gorm:"column:phone;type:varchar(11);not null" json:"phone"`             // 手机号
	IsDefault  string `gorm:"column:is_default;type:enum('1','0');not null" json:"is_default"` // 是否默认:1=默认,0=非默认
	Createtime int    `gorm:"column:createtime;type:int(11);not null" json:"createtime"`       // 创建时间
	Updatetime int    `gorm:"column:updatetime;type:int(11);not null" json:"updatetime"`       // 更新时间
}

// FaUserCoupon [...]
type FaUserCoupon struct {
	ID       uint64 `gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null" json:"-"`  // id
	UserID   int    `gorm:"column:user_id;type:int(10) unsigned;not null" json:"user_id"`     // 用户id
	CouponID int    `gorm:"column:coupon_id;type:int(10) unsigned;not null" json:"coupon_id"` // 优惠券id
	Taketime int    `gorm:"column:taketime;type:int(11);not null" json:"taketime"`            // 领取时间
	Endtime  int    `gorm:"column:endtime;type:int(11);not null" json:"endtime"`              // 过期时间
	Status   string `gorm:"column:status;type:enum('0','1','2');not null" json:"status"`      // 状态:0=未使用,1=已使用,2=已失效
}

// FaUserGroup 会员组表
type FaUserGroup struct {
	ID         int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`
	Name       string `gorm:"column:name;type:varchar(50)" json:"name"`                 // 组名
	Rules      string `gorm:"column:rules;type:text" json:"rules"`                      // 权限节点
	Createtime int    `gorm:"column:createtime;type:int(11)" json:"createtime"`         // 添加时间
	Updatetime int    `gorm:"column:updatetime;type:int(11)" json:"updatetime"`         // 更新时间
	Status     string `gorm:"column:status;type:enum('normal','hidden')" json:"status"` // 状态
}

// FaUserRule 会员规则表
type FaUserRule struct {
	ID         int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`
	Pid        int    `gorm:"column:pid;type:int(11)" json:"pid"`                       // 父ID
	Name       string `gorm:"column:name;type:varchar(50)" json:"name"`                 // 名称
	Title      string `gorm:"column:title;type:varchar(50)" json:"title"`               // 标题
	Remark     string `gorm:"column:remark;type:varchar(100)" json:"remark"`            // 备注
	Ismenu     bool   `gorm:"column:ismenu;type:tinyint(1)" json:"ismenu"`              // 是否菜单
	Createtime int    `gorm:"column:createtime;type:int(11)" json:"createtime"`         // 创建时间
	Updatetime int    `gorm:"column:updatetime;type:int(11)" json:"updatetime"`         // 更新时间
	Weigh      int    `gorm:"column:weigh;type:int(11)" json:"weigh"`                   // 权重
	Status     string `gorm:"column:status;type:enum('normal','hidden')" json:"status"` // 状态
}

// FaUserToken 会员Token表
type FaUserToken struct {
	Token      string `gorm:"primaryKey;column:token;type:varchar(50);not null" json:"-"`   // Token
	UserID     int    `gorm:"column:user_id;type:int(10) unsigned;not null" json:"user_id"` // 会员ID
	Createtime int    `gorm:"column:createtime;type:int(11)" json:"createtime"`             // 创建时间
	Expiretime int    `gorm:"column:expiretime;type:int(11)" json:"expiretime"`             // 过期时间
}

// FaVersion 版本表
type FaVersion struct {
	ID          int    `gorm:"primaryKey;column:id;type:int(11);not null" json:"-"`             // ID
	Oldversion  string `gorm:"column:oldversion;type:varchar(30)" json:"oldversion"`            // 旧版本号
	Newversion  string `gorm:"column:newversion;type:varchar(30)" json:"newversion"`            // 新版本号
	Packagesize string `gorm:"column:packagesize;type:varchar(30)" json:"packagesize"`          // 包大小
	Content     string `gorm:"column:content;type:varchar(500)" json:"content"`                 // 升级内容
	Downloadurl string `gorm:"column:downloadurl;type:varchar(255)" json:"downloadurl"`         // 下载地址
	Enforce     uint8  `gorm:"column:enforce;type:tinyint(3) unsigned;not null" json:"enforce"` // 强制更新
	Createtime  int    `gorm:"column:createtime;type:int(11)" json:"createtime"`                // 创建时间
	Updatetime  int    `gorm:"column:updatetime;type:int(11)" json:"updatetime"`                // 更新时间
	Weigh       int    `gorm:"column:weigh;type:int(11);not null" json:"weigh"`                 // 权重
	Status      string `gorm:"column:status;type:varchar(30)" json:"status"`                    // 状态
}

// FaVillage [...]
type FaVillage struct {
	ID            int64  `gorm:"primaryKey;column:id;type:bigint(10) unsigned;not null" json:"-"`     // ID
	WorkerGroupID int    `gorm:"column:worker_group_id;type:int(11);not null" json:"worker_group_id"` // 员工组id
	Province      string `gorm:"column:province;type:varchar(10);not null" json:"province"`           // 省份
	City          string `gorm:"column:city;type:varchar(20);not null" json:"city"`                   // 城市
	Districts     string `gorm:"column:districts;type:varchar(30);not null" json:"districts"`         // 区/县
	Village       string `gorm:"unique;column:village;type:varchar(50);not null" json:"village"`      // 小区
	PoiID         string `gorm:"column:poi_id;type:varchar(30);not null" json:"poi_id"`               // POI
	Createtime    int    `gorm:"column:createtime;type:int(11);not null" json:"createtime"`           // 创建时间
	Updatetime    int    `gorm:"column:updatetime;type:int(11);not null" json:"updatetime"`           // 更新时间
	Deletetime    int    `gorm:"column:deletetime;type:int(11)" json:"deletetime"`                    // 删除时间
}

// FaWorker [...]
type FaWorker struct {
	ID            int    `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"`        // 工号
	GroupID       int    `gorm:"column:group_id;type:int(11);not null" json:"group_id"`               // 所在组ID
	SuperWorkerID int    `gorm:"column:super_worker_id;type:int(11);not null" json:"super_worker_id"` // 上级工人ID
	Avatar        string `gorm:"column:avatar;type:varchar(255);not null" json:"avatar"`              // 照片
	Name          string `gorm:"column:name;type:varchar(20);not null" json:"name"`                   // 姓名
	Gender        string `gorm:"column:gender;type:enum('1','0');not null" json:"gender"`             // 性别:1=男,0=女
	Age           uint8  `gorm:"column:age;type:tinyint(3) unsigned;not null" json:"age"`             // 年龄
	Mobile        string `gorm:"column:mobile;type:varchar(11);not null" json:"mobile"`               // 手机号
	Score         int8   `gorm:"column:score;type:tinyint(4);not null" json:"score"`                  // 评分(均分)
	ServiceCount  int    `gorm:"column:service_count;type:int(4);not null" json:"service_count"`      // 已服务数量
	Status        string `gorm:"column:status;type:enum('0','1');not null" json:"status"`             // 接单状态:0=停止接单,1=正在接单
	Createtime    int    `gorm:"column:createtime;type:int(11);not null" json:"createtime"`           // 创建时间
	Updatetime    int    `gorm:"column:updatetime;type:int(11);not null" json:"updatetime"`           // 更新时间
	Deletetime    int    `gorm:"column:deletetime;type:int(11)" json:"deletetime"`                    // 删除时间
}

// FaWorkerBank [...]
type FaWorkerBank struct {
	WorkerID   int     `gorm:"primaryKey;column:worker_id;type:int(11);not null" json:"-"`         // 员工ID
	Balance    float64 `gorm:"column:balance;type:decimal(19,2) unsigned;not null" json:"balance"` // 余额
	CardNumber string  `gorm:"column:card_number;type:varchar(20);not null" json:"card_number"`    // 银行卡号
	CardImages string  `gorm:"column:card_images;type:varchar(255);not null" json:"card_images"`   // 银行卡照片
	BankName   string  `gorm:"column:bank_name;type:varchar(30);not null" json:"bank_name"`        // 银行名称
	BranchName string  `gorm:"column:branch_name;type:varchar(30);not null" json:"branch_name"`    // 支行名称
	Createtime int     `gorm:"column:createtime;type:int(10) unsigned;not null" json:"createtime"` // 创建时间
	Updatetime uint32  `gorm:"column:updatetime;type:int(10) unsigned;not null" json:"updatetime"` // 更新时间
}

// FaWorkerCalendar [...]
type FaWorkerCalendar struct {
	ID        int       `gorm:"primaryKey;column:id;type:int(11);not null" json:"-"`       // ID
	OrderID   string    `gorm:"column:order_id;type:varchar(20);not null" json:"order_id"` // 订单ID
	WorkerID  int       `gorm:"column:worker_id;type:int(11);not null" json:"worker_id"`   // 员工ID
	Date      time.Time `gorm:"column:date;type:date;not null" json:"date"`                // 日期
	Starttime int       `gorm:"column:starttime;type:int(11);not null" json:"starttime"`   // 开始时间
	Endtime   int       `gorm:"column:endtime;type:int(11);not null" json:"endtime"`       // 结束时间
}

// FaWorkerDetail [...]
type FaWorkerDetail struct {
	WorkerID    uint32 `gorm:"primaryKey;column:worker_id;type:int(10) unsigned;not null" json:"-"` // 员工
	Introduce   string `gorm:"column:introduce;type:text" json:"introduce"`                         // 员工介绍
	Experience  string `gorm:"column:experience;type:text" json:"experience"`                       // 从业经验
	HealthImage string `gorm:"column:health_image;type:varchar(255)" json:"health_image"`           // 健康证
	WorkImage   string `gorm:"column:work_image;type:varchar(255)" json:"work_image"`               // 工作证
	SkillImages string `gorm:"column:skill_images;type:varchar(255)" json:"skill_images"`           // 技能证
	Createtime  int    `gorm:"column:createtime;type:int(11);not null" json:"createtime"`           // 创建时间
	Updatetime  int    `gorm:"column:updatetime;type:int(11);not null" json:"updatetime"`           // 更新时间
	Deletetime  int    `gorm:"column:deletetime;type:int(11)" json:"deletetime"`                    // 删除时间
}

// FaWorkerGroup [...]
type FaWorkerGroup struct {
	ID         uint32 `gorm:"primaryKey;column:id;type:int(10) unsigned;not null" json:"-"` // id
	Name       string `gorm:"column:name;type:varchar(30);not null" json:"name"`            // 分组名
	Createtime int    `gorm:"column:createtime;type:int(11);not null" json:"createtime"`    // 创建时间
	Updatetime int    `gorm:"column:updatetime;type:int(11);not null" json:"updatetime"`    // 更新时间
}

// FaWorkerMaterials [...]
type FaWorkerMaterials struct {
	WorkerID       int    `gorm:"primaryKey;column:worker_id;type:int(10) unsigned;not null" json:"-"` // 员工ID
	MaterialsImage string `gorm:"column:materials_image;type:varchar(255)" json:"materials_image"`     // 领取物资单
	IDCardNumber   string `gorm:"column:id_card_number;type:varchar(20)" json:"id_card_number"`        // 身份证号
	IDCardImages   string `gorm:"column:id_card_images;type:varchar(255)" json:"id_card_images"`       // 身份证照片
	GuaranteeFile  string `gorm:"column:guarantee_file;type:varchar(255)" json:"guarantee_file"`       // 保单
	ContractFile   string `gorm:"column:contract_file;type:varchar(255)" json:"contract_file"`         // 合同
	Createtime     int    `gorm:"column:createtime;type:int(10) unsigned;not null" json:"createtime"`  // 创建时间
	Updatetime     uint32 `gorm:"column:updatetime;type:int(10) unsigned" json:"updatetime"`           // 更新时间
}

// FaWorkerMoneyLog [...]
type FaWorkerMoneyLog struct {
	ID         int64   `gorm:"primaryKey;column:id;type:bigint(20) unsigned;not null" json:"-"`  // ID
	WorkerID   int     `gorm:"column:worker_id;type:int(11);not null" json:"worker_id"`          // 员工id
	Type       string  `gorm:"column:type;type:enum('0','1');not null" json:"type"`              // 类型:0=支出,1=收入
	Money      float64 `gorm:"column:money;type:decimal(19,2) unsigned;not null" json:"money"`   // 变动金额
	Before     float64 `gorm:"column:before;type:decimal(19,2) unsigned;not null" json:"before"` // 变动前
	After      float64 `gorm:"column:after;type:decimal(19,2) unsigned;not null" json:"after"`   // 变动后
	OrderID    string  `gorm:"column:order_id;type:varchar(30)" json:"order_id"`                 // 订单id
	Memo       string  `gorm:"column:memo;type:varchar(19);not null" json:"memo"`                // 备注
	Createtime int     `gorm:"column:createtime;type:int(11);not null" json:"createtime"`        // 创建时间
}

// FaWorkerService [...]
type FaWorkerService struct {
	ID         uint32 `gorm:"primaryKey;column:id;type:int(11) unsigned;not null" json:"-"`        // id
	WorkerID   uint64 `gorm:"column:worker_id;type:bigint(20) unsigned;not null" json:"worker_id"` // 员工ID
	ServiceID  uint32 `gorm:"column:service_id;type:int(11) unsigned;not null" json:"service_id"`  // 服务ID
	Creattime  int    `gorm:"column:creattime;type:int(11) unsigned;not null" json:"creattime"`    // 创建时间
	Updatetime int    `gorm:"column:updatetime;type:int(11) unsigned;not null" json:"updatetime"`  // 更新时间
}
